using System;
using System.Collections.Generic;
using System.Text;

namespace Barrage.Global
{
    /// <summary>
    /// Holds a Config instance with information about directories used to store files in categories
    /// </summary>
    public static class Store
    {
        /// <summary>
        /// Path to audio files
        /// </summary>
        public const string AUDIO_PATH = "AudioPath";
        /// <summary>
        /// Path to music files
        /// </summary>
        public const string MUSIC_PATH = "MusicPath";
        /// <summary>
        /// Path to font definitions
        /// </summary>
        public const string FONT_PATH = "FontPath";
        /// <summary>
        /// Path to font textures
        /// </summary>
        public const string FONT_TEXTURE_PATH = "FontTexturePath";
        /// <summary>
        /// Path to language definitions
        /// </summary>
        public const string LANGUAGE_PATH = "LanguagePath";
        /// <summary>
        /// Path to GUI Layout definitions
        /// </summary>
        public const string LAYOUT_PATH = "Layouts";
        /// <summary>
        /// Path to Meshes
        /// </summary>
        public const string MODEL_PATH = "ModelPath";
        /// <summary>
        /// Path to textures
        /// </summary>
        public const string TEXTURE_PATH = "TexturePath";
        /// <summary>
        /// Path to shaders
        /// </summary>
        public const string SHADER_PATH = "ShaderPath";
        /// <summary>
        /// Path to GUI Templates folder
        /// </summary>
        public const string TEMPLATE_PATH = "TemplatePath";

        static Config pathConfig=new Config();
        /// <summary>
        /// Returns the Config instance with path information
        /// </summary>
        public static Config PathConfig { get { return pathConfig; } }


        /// <summary>
        /// Utility class to get a path from a path type identifier and a filename
        /// </summary>
        /// <param name="pathType">Path type identifier</param>
        /// <param name="fileName">File name</param>
        /// <returns>The path for the path type specified followed by the filename</returns>
        public static string GetFilePath(string pathType, string fileName)
        {
            return pathConfig[pathType] + fileName;
        }
    }
}
